using EOSDigital.SDK;
using System.Collections.Generic;

namespace EOSDigital.API
{
	public sealed class ImageQualityValues : ValueBase
	{
		private static List<CameraValue> values;

		public static CameraValue[] Values
		{
			get
			{
				return ImageQualityValues.values.ToArray();
			}
		}

		static ImageQualityValues()
		{
			ImageQualityValues.values = new List<CameraValue>
			{
				new CameraValue("Jpeg Large", 1113871, 0.0, PropertyID.ImageQuality),
				new CameraValue("Jpeg Middle1", 84999951, 0.0, PropertyID.ImageQuality),
				new CameraValue("Jpeg Middle2", 101777167, 0.0, PropertyID.ImageQuality),
				new CameraValue("Jpeg Small", 34668303, 0.0, PropertyID.ImageQuality),
				new CameraValue("1600×2400   Jpeg Small2", 252968719, 0.0, PropertyID.ImageQuality),
				new CameraValue("Jpeg Small3", 269745935, 0.0, PropertyID.ImageQuality),
				new CameraValue("4000×6000[精细]  Jpeg Large Fine", 1310479, 0.0, PropertyID.ImageQuality),
				new CameraValue("4000×6000[一般]  Jpeg Large Normal", 1244943, 0.0, PropertyID.ImageQuality),
				new CameraValue("2656×3984[精细]  Jpeg Middle Fine", 18087695, 0.0, PropertyID.ImageQuality),
				new CameraValue("2656×3984[一般]  Jpeg Middle Normal", 18022159, 0.0, PropertyID.ImageQuality),
				new CameraValue("Jpeg Small Fine", 34864911, 0.0, PropertyID.ImageQuality),
				new CameraValue("Jpeg Small Normal", 34799375, 0.0, PropertyID.ImageQuality),
				new CameraValue("1984×2976[精细]  Jpeg Small1 Fine", 236191503, 0.0, PropertyID.ImageQuality),
				new CameraValue("1984×2976[一般]  Jpeg Small1 Normal", 236125967, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW", 6618895, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Large Fine", 6553619, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Large Normal", 6553618, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Middle Fine", 6553875, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Middle Normal", 6553874, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Small Fine", 6554131, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Small Normal", 6554130, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Small1 Fine", 6557203, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Small1 Normal", 6557202, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Small2", 6557459, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Small3", 6557715, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Large", 6553616, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Middle1", 6554896, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Middle2", 6555152, 0.0, PropertyID.ImageQuality),
				new CameraValue("RAW + Jpeg Small", 6554128, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1)", 23396111, 0.0, PropertyID.WhiteBalance),
				new CameraValue("MRAW(SRAW1) + Jpeg Large Fine", 23330835, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Large Normal", 23330834, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Middle Fine", 23331091, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Middle Normal", 23331090, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Small Fine", 23331347, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Small Normal", 23331346, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Small1 Fine", 23334419, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Small1 Normal", 23334418, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Small2", 23334675, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Small3", 23334931, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Large", 23330832, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Middle1", 23332112, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Middle2", 23332368, 0.0, PropertyID.ImageQuality),
				new CameraValue("MRAW(SRAW1) + Jpeg Small", 23331344, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2)", 40173327, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Large Fine", 40108051, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Large Normal", 40108050, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Middle Fine", 40108307, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Middle Normal", 40108306, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Small Fine", 40108563, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Small Normal", 40108562, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Small1 Fine", 40111635, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Small1 Normal", 40111634, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Small2", 40111891, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Small3", 40112147, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Large", 40108048, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Middle1", 40109328, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Middle2", 40109584, 0.0, PropertyID.ImageQuality),
				new CameraValue("SRAW(SRAW2) + Jpeg Small", 40108560, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW", 6553359, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Large Fine", 6488083, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Middle Fine", 6488339, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Middle1 Fine", 6489363, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Middle2 Fine", 6489619, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Small Fine", 6488595, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Small1 Fine", 6491667, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Small2 Fine", 6491923, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Small3 Fine", 6492179, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Large Normal", 6488082, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Middle Normal", 6488338, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Middle1 Normal", 6489362, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Middle2 Normal", 6489618, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Small Normal", 6488594, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Small1 Normal", 6491666, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Large", 6488080, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Middle1", 6489360, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Middle2", 6489616, 0.0, PropertyID.ImageQuality),
				new CameraValue("CRAW + Jpeg Small", 6488592, 0.0, PropertyID.ImageQuality),
				new CameraValue("Unknown", -1, 0.0, PropertyID.ImageQuality)
			};
		}

		public static CameraValue GetValue(int value)
		{
			return ValueBase.GetValue(value, ImageQualityValues.values);
		}

		public static CameraValue GetValue(string value)
		{
			return ValueBase.GetValue(value, ImageQualityValues.values);
		}

		public static CameraValue GetValue(double value)
		{
			return ValueBase.GetValue(value, ImageQualityValues.values);
		}
	}
}
